<?php 
namespace app\exam\controller;
use think\Controller;
use think\Cache;
use think\Db;
class Answer extends Base{

	public  function problem(){
		$data=input();
		//return json($data);die;
		$id=$data['s_id'];
		//Cache::rm($data['login_flag'].'_'.$id.'zonghe_yidati'.'_'.$data['type_id']);die;
		if($data['type']==1){
			$choiceQuestion_dati=Cache::get($data['login_flag'].'_'.$id.'danxuanduoxuan_dati'.'_'.$data['type_id']);
			$danxuandatika=Cache::get($data['login_flag'].'_'.$id.'danxuanduoxuan_yidatika'.'_'.$data['type_id']);//单选多选以答题卡
			 // print_r($choiceQuestion_dati);die;
			$array=[
				'q_id'=>$data['q_id'],
				'answer'=>$data['answer'],
				'is_true'=>$data['is_true']
			];
			// return json_encode($array);die;
			if($danxuandatika){
				if(in_array($data['q_id'], $danxuandatika)){
					if(!$data['answer']){
						$key=array_search($data['q_id'] ,$danxuandatika);
						array_splice($danxuandatika,$key,1);
						$arr=$danxuandatika;
						$rest=Cache::set($data['login_flag'].'_'.$id.'danxuanduoxuan_yidatika'.'_'.$data['type_id'],$arr);
					}else{
						$arr=$danxuandatika;
						$rest=Cache::set($data['login_flag'].'_'.$id.'danxuanduoxuan_yidatika'.'_'.$data['type_id'],$arr);
					}

				}else{
					if($data['answer']){
						array_push($danxuandatika, $data['q_id']);
						$arr=$danxuandatika;
						$rest=Cache::set($data['login_flag'].'_'.$id.'danxuanduoxuan_yidatika'.'_'.$data['type_id'],$arr);
					}else{
						$arr=$danxuandatika;
						$rest=Cache::set($data['login_flag'].'_'.$id.'danxuanduoxuan_yidatika'.'_'.$data['type_id'],$arr);
					}
				}
			}else{
				if($data['answer']){
					$arr[]=$data['q_id'];
					$rest=Cache::set($data['login_flag'].'_'.$id.'danxuanduoxuan_yidatika'.'_'.$data['type_id'],$arr);
				}
			}
			$b=false;
			if($choiceQuestion_dati){
				foreach ($choiceQuestion_dati as $k=>&$v) {
					if($v['q_id']==$data['q_id']){
						if(!$data['answer']){
							array_splice($choiceQuestion_dati,$k,1);
						}else{
							$v['answer']=$data['answer'];
							$v['is_true']=$data['is_true'];
						}
						
						$b=true;
					}
				}
				if(!$b){
					if($data['answer']){
						array_push($choiceQuestion_dati, $array);
					}
					
				}
				$res=$choiceQuestion_dati;
				$rept=Cache::set($data['login_flag'].'_'.$id.'danxuanduoxuan_dati'.'_'.$data['type_id'],$res);
			}else{
				$res[]=$array;
				if($data['answer']){
					$rept=Cache::set($data['login_flag'].'_'.$id.'danxuanduoxuan_dati'.'_'.$data['type_id'],$res);
				}
				
			}
		$danxuanduoxuan_dati=Cache::get($data['login_flag'].'_'.$id.'danxuanduoxuan_dati'.'_'.$data['type_id']);
			$danxuan_yidatika=Cache::get($data['login_flag'].'_'.$id.'danxuanduoxuan_yidatika'.'_'.$data['type_id']);//
		// 	print_r($danxuanduoxuan_dati);
			return self::three($rept,'答题成功','答题失败');
			// return json_encode($danxuanduoxuan_dati);die;
			
		}

		else if($data['type']==2){

			$zonghe_dati=Cache::get($data['login_flag'].'_'.$id.'zonghe_dati'.'_'.$data['type_id']);
			$zonghe_yidatika=Cache::get($data['login_flag'].'_'.$id.'zonghe_yidatika'.'_'.$data['type_id']);
			if($data['answer']){
				$data['answer']=rtrim($data['answer'], '||');
				$arra=explode('||', $data['answer']);
				 $answer=[];
				 foreach ($arra as $k=>$v) {
				 	
				 	$v1=explode(':', $v);
				 	
				 	
				 	$answer[$k]['q_id']=$v1[0];
				 	$answer[$k]['answer']=$v1[1];
				 	$answer[$k]['is_true']=$v1[2];
				 	
				 }

				$arrayone=[
					$data['c_id']=>$answer

				];
				// print_r($arrayone);die;
			}else{
				
				$arrayone=[];
			}
			// print_r($array);die;
			if($zonghe_yidatika){
				
				$b=isset($zonghe_yidatika[$data['c_id']]);
				
				if($b){
					if($data['answer']){

						foreach ($zonghe_yidatika as $k=>&$v) {
						
							if($k==$data['c_id']){
								foreach ($v as $k1 => &$v1) {
									
									foreach ($answer as $k2 => $v2) {
										
										// if(empty($v2['answer'])&&$v2['q_id']==$v1){
										// 	unset($v[$k1]);
										// 	$v=array_values($v);
										// }
										if(empty($v2['answer'])){
											unset($zonghe_yidatika[$k]);
											// $v=array_values($v);
										}
										if(!empty($v2['answer'])&&!in_array($v2['q_id'], $v)){
											array_push($v, $v2['q_id']);
										}
										
									}
								}
							}
						}
						$arr=$zonghe_yidatika;
						$rest=Cache::set($data['login_flag'].'_'.$id.'zonghe_yidatika'.'_'.$data['type_id'],$arr);
					}else{
						unset($zonghe_yidatika[$data['c_id']]);
						$arr=$zonghe_yidatika;
						$rest=Cache::set($data['login_flag'].'_'.$id.'zonghe_yidatika'.'_'.$data['type_id'],$arr);
					}
					
				}else{
					if(!$data['answer']){
						$arr=$zonghe_yidatika;
						$rest=Cache::set($data['login_flag'].'_'.$id.'zonghe_yidatika'.'_'.$data['type_id'],$arr);
					}else{
						$b=[];
						$c=true;
						foreach ($answer as $k=> $v) {
							// if($v['answer']){
							// 	$b[]=$v['q_id'];
							// 	$array=[
							// 		$data['c_id']=>$b
							// 	];
							// }
							if($v['answer'] == ''){
								$c = false;
								break;
							}else{

								$b[]=$v['q_id'];
								$array=[
									$data['c_id']=>$b

								];
							}




						}
						if(!$c){
							$array = [];
						}
						$arr=$zonghe_yidatika+$array;
						// $arr=$zonghe_yidatika;
						$rest=Cache::set($data['login_flag'].'_'.$id.'zonghe_yidatika'.'_'.$data['type_id'],$arr);
					}
					
				}
					
				
			}else{
				if($data['answer']){
					$b=[];
					$c=true;
					// print_r($answer);die;
					foreach ($answer as $k=> $v) {
						// if(empty()){
						// 	$c=false;break;
						// }else{

						
						// }
						if($v['answer'] == ''){
							$c = false;
							break;
						}else{

							$b[$k]=$v['q_id'];
							$arrayc=[
								$data['c_id']=>$b

							];
						}
						
						
					}
					if(!$c){
							$arrayc = [];
						}

					$rest=Cache::set($data['login_flag'].'_'.$id.'zonghe_yidatika'.'_'.$data['type_id'],$arrayc);
				}
			}


			$b=false;
			if($zonghe_dati){
				foreach ($zonghe_dati as $k=>&$v) {
					if($k==$data['c_id']){
						if(!$data['answer']){
							unset($zonghe_dati[$k]);
						}else{
							
								$v=$answer;
							
							
						}
						
						$b=true;
					}
				}
				if(!$b){
					if($data['answer']){
						$zonghe_dati=$zonghe_dati+$arrayone;
					}
					
				}
				$res=$zonghe_dati;
				$rept=Cache::set($data['login_flag'].'_'.$id.'zonghe_dati'.'_'.$data['type_id'],$res);
			}else{
				$res=$arrayone;
				if($data['answer']){
					$rept=Cache::set($data['login_flag'].'_'.$id.'zonghe_dati'.'_'.$data['type_id'],$res);
				}
				
			}

			return self::three($rept,'答题成功','答题失败');

			 // print_r($array);die;
		}

		// $danxuanduoxuan_datika=Cache::get($data['login_flag'].'_'.$id.'danxuanduoxuan_datika'.'_'.$data['type_id']);
		// $danxuanduoxuan_dati=Cache::get($data['login_flag'].'_'.$id.'danxuanduoxuan_dati'.'_'.$data['type_id']);
		// $danxuan_yidatika=Cache::get($data['login_flag'].'_'.$id.'danxuanduoxuan_yidatika'.'_'.$data['type_id']);//单选多选以答题卡
		// $zonghe_datika=Cache::get($data['login_flag'].'_'.$id.'zonghe_datika'.'_'.$data['type_id']);
		// $zonghe_dati=Cache::get($data['login_flag'].'_'.$id.'zonghe_dati'.'_'.$data['type_id']);
		// $zonghe_yidatika=Cache::get($data['login_flag'].'_'.$id.'zonghe_yidatika'.'_'.$data['type_id']);//综合以答题卡
		// // print_r($choiceQuestion);
		// print_r($danxuanduoxuan_datika);
		// print_r($zonghe_dati);
		// print_r($danxuanduoxuan_dati);


		

	}


	public  function selectAnswer(){

		$data=input();
		$id=$data['s_id'];
		if($data['type']==1){
			// $danxuanduoxuan_dati=Cache::get($data['login_flag'].'_'.$id.'danxuanduoxuan_dati'.'_'.$data['type_id']);
			// $danxuan_yidatika=Cache::get($data['login_flag'].'_'.$id.'danxuanduoxuan_yidatika'.'_'.$data['type_id']);//
			$choiceQuestion_dati=Cache::get($data['login_flag'].'_'.$id.'danxuanduoxuan_dati'.'_'.$data['type_id']);
			$danxuandatika=Cache::get($data['login_flag'].'_'.$id.'danxuanduoxuan_yidatika'.'_'.$data['type_id']);//
			// print_r($choiceQuestion_dati);die;
			if($danxuandatika&&$choiceQuestion_dati){
				if(in_array($data['q_id'], $danxuandatika)){
					$arr='';
					foreach ($choiceQuestion_dati as $k=> &$v) {
						if($v['q_id']==$data['q_id']){
							$arr=$v['answer'];
						}
					}
				}else{
					$arr='';
				}
			}else{
				$arr='';
			}

			return json_encode(['code'=>10000,'msg'=>'查询成功','data'=>$arr]);


		}
		else if($data['type']==2){
			$zonghe_daan=Cache::get($data['login_flag'].'_'.$id.'zonghe_dati'.'_'.$data['type_id']);
			$zonghe_yidatika=Cache::get($data['login_flag'].'_'.$id.'zonghe_yidatika'.'_'.$data['type_id']);//
			if($zonghe_yidatika&&$zonghe_daan){
				$b=false;
				foreach ($zonghe_yidatika as $k => $v) {
					if($data['c_id']==$k){
					$arr=[];
						foreach ($zonghe_daan as $k1 => &$v1) {
							if($k1==$data['c_id']){
								$arr=$v1;
							}
						}
						$b=true;
					}

				}
				if(!$b){
					$arr=[];
				}
				
			}else{
				$arr=[];
			}
			// print_r($zonghe_yidatika);
			// print_r($zonghe_daan);
			return json_encode($arr);

		}

		

	}


	public function MyScore(){
		$data=input();
		$id=$data['s_id'];
		$danxuan_datika=Cache::get($data['login_flag'].'_'.$id.'danxuanduoxuan_dati'.'_'.$data['type_id']);
		$danxuan_yidatika=Cache::get($data['login_flag'].'_'.$id.'danxuanduoxuan_yidatika'.'_'.$data['type_id']);
		$zonghe_dati=Cache::get($data['login_flag'].'_'.$id.'zonghe_dati'.'_'.$data['type_id']);
		$zonghe_yidatika=Cache::get($data['login_flag'].'_'.$id.'zonghe_yidatika'.'_'.$data['type_id']);
		if($danxuan_yidatika&&$danxuan_datika){
			$danxuan_num=0;
			foreach ($danxuan_yidatika as $k=> $v) {
				foreach ($danxuan_datika as $k1=> $v1) {
					if($v==$v1['q_id']&&$v1['is_true']==1){
						$danxuan_num=$danxuan_num+1;
					}
				}
			}
		}else{
			$danxuan_num=0;
		}

		if($zonghe_yidatika&&$zonghe_dati){
			$zonghe_num=0;
			
			foreach ($zonghe_yidatika as $k=> $v) {
				$b=false;
				foreach ($zonghe_dati as $k1=> $v1) {
					if($k==$k1){
						
						foreach ($v as $k2=> $v2) {
							
							foreach ($v1 as $k3 => $v3) {
								if($v2==$v3['q_id']&&$v3['is_true']==0){
									$b = true;
								}
							}

							
						}

					}

				}
				if(!$b){
					$zonghe_num++;
		 		}


			}
	    

		}else{
			$zonghe_num=0;
		}
		$score=$danxuan_num+$zonghe_num;
		print_r($score);die;
	}




	public function AnswerCard(){
		$data=input();
		$id=$data['s_id'];
		$danxuan_datika=Cache::get($data['login_flag'].'_'.$id.'danxuanduoxuan_datika'.'_'.$data['type_id']);
		$danxuan_yidatika=Cache::get($data['login_flag'].'_'.$id.'danxuanduoxuan_yidatika'.'_'.$data['type_id']);
		$zonghe_datika=Cache::get($data['login_flag'].'_'.$id.'zonghe_datika'.'_'.$data['type_id']);
		$zonghe_yidatika=Cache::get($data['login_flag'].'_'.$id.'zonghe_yidatika'.'_'.$data['type_id']);
		if($danxuan_datika){
			
			$danxuan_datika=$danxuan_datika;
		}else{
			$danxuan_datika=[];
		}
		// print_r($zonghe_datika);
		if($zonghe_datika){
			$arr=[];
				foreach ($zonghe_datika as $k=> $v) {
					$arr[]=$k;
				}
			$zonghe_datika=$arr;
		}else{
			$zonghe_datika=[];
		}


		if($danxuan_yidatika){
			$danxuan_yidatika=$danxuan_yidatika;
		}else{
			$danxuan_yidatika=[];
		}
		
		if($zonghe_yidatika){
			$arr1=[];
				foreach ($zonghe_yidatika as $k=> $v) {
					$arr1[]=$k;
				}
			$zonghe_yidatika=$arr1;
		}else{
			$zonghe_yidatika=[];
		}
		
		// print_r($zonghe_datika);
		// print_r($zonghe_yidatika);
		return json_encode(['danxuan_datika'=>$danxuan_datika,'danxuan_yidatika'=>$danxuan_yidatika,'zonghe_datika'=>$zonghe_datika,'zonghe_yidatika'=>$zonghe_yidatika]);
	}



	public function collection(){
		
			$data=input();
			$descquestion=model('descquestion');
			$questiones=model('questiones');
			$arr=[];
			// Cache::set($data['login_flag'].'_shoucang'.$data['type_id'],'');die;

			if($data){
				$cache=Cache::get($data['login_flag'].'_shoucang'.$data['type_id']);
				
				if($cache){
					foreach ($cache as $v) {
						if($data['type']==$v['type']&&$data['id']==$v['q_id']){
							return json_encode(['code'=>10001,'msg'=>'已收藏过了']);
						}
					}
				}

				if($data['type']==2){
					$res=$descquestion->where(['c_id'=>$data['id']])->find();
					if($cache){
						$arr=[
						'id'=>time().rand(100,999),
						'q_id'=>$data['id'],
						'type'=>$data['type'],
						'desc'=>$res['c_decs'],
						'add_time'=>date('Y-m-d',time()),
					];
						array_push($cache,$arr);
						$rept=Cache::set($data['login_flag'].'_shoucang'.$data['type_id'],$cache);
					}else{
						$arr[]=[
						'id'=>time().rand(100,999),
						'q_id'=>$data['id'],
						'type'=>$data['type'],
						'desc'=>$res['c_decs'],
						'add_time'=>date('Y-m-d',time()),
					];
						$rept=Cache::set($data['login_flag'].'_shoucang'.$data['type_id'],$arr);
					}
					// $c=Cache::get($data['login_flag'].'_shoucang'.$data['type_id']);
					// print_r($c);die;
					return self::three($rept,'收藏成功','收藏失败');
				}else{
					$res=$questiones->where(['question_id'=>$data['id']])->find();
					if($cache){
						$arr=[
						'id'=>time().rand(100,999),
						'q_id'=>$data['id'],
						'type'=>$data['type'],
						'desc'=>$res['s_question'],
						'add_time'=>date('Y-m-d',time()),
					];
						array_push($cache,$arr);
						$rept=Cache::set($data['login_flag'].'_shoucang'.$data['type_id'],$cache);
					}else{
						$arr[]=[
						'id'=>time().rand(100,999),
						'q_id'=>$data['id'],
						'type'=>$data['type'],
						'desc'=>$res['s_question'],
						'add_time'=>date('Y-m-d',time()),
					];
						$rept=Cache::set($data['login_flag'].'_shoucang'.$data['type_id'],$arr);
					}
					// $c=Cache::get($data['login_flag'].'_shoucang'.$data['type_id']);
					// print_r($c);die;
					return self::three($rept,'收藏成功','收藏失败');
				}
			}
	}





		public function CollectionList(){

			$data=input();
			$res=Cache::get($data['login_flag'].'_shoucang'.$data['type_id']);
			return self::three($res,'查询成功','查询失败或暂无数据',$res);
		}

		public function CollectionTopic(){
			$data=input();
			$res=Cache::get($data['login_flag'].'_shoucang'.$data['type_id']);
		
			if($res){
				foreach ($res as $v) {
				if($v['id']==$data['id']){
					if($v['type']==2){
						$resArr=Db::table('questiones')->where(['comprehensive_id'=>$v['q_id']])->select();

						if($resArr){
							foreach ($resArr as &$v1) {
								$v1['desc']=$v['desc'];
								$v1['c_id']=$v['q_id'];
							}
						}
						return self::three($resArr,'查询成功','查询失败或暂无数据',$resArr);
					}else{
						$resArr=Db::table('questiones')->where(['question_id'=>$v['q_id']])->select();
						return self::three($resArr,'查询成功','查询失败或暂无数据',$resArr);
					}
				
					}
				}
			}else{
				return json_encode(['code'=>10001,'msg'=>'用户还没收藏过']);
			}
			
			// print_r($resArr);die;
			
		}



		public function IsCollection(){
				$data=input();
				$cache=Cache::get($data['login_flag'].'_shoucang'.$data['type_id']);
				$b=false;
				if($cache){
					foreach ($cache as $v) {
						if($data['type']==$v['type']&&$data['id']==$v['q_id']){
							$b=true;
						}
					}
					if($b){
						return json(['code'=>10001,'msg'=>'已收藏过了']);
					}else{
						return json(['code'=>10000,'msg'=>'还没收藏']);
					}
					
				}else{
					return json(['code'=>10000,'msg'=>'用户还没有收藏过']);
				}

		}

		public function DelCollection(){
			$data=input();
	        if($data){
	            $res=Cache::get($data['login_flag'].'_shoucang'.$data['type_id']);
	            if($res){
	            	 foreach ($res as $k=>$v) {
	                
		                if($v['q_id']==$data['id']&&$v['type']==$data['type']){
		                    $v=[];
		                    unset($res[$k]);
		                }
		            }
		            $result=Cache::set($data['login_flag'].'_shoucang'.$data['type_id'],$res);
		            //print_r($res);die;
		             return self::three($result,'操作成功','操作失败');
		            //print_r($b);
	            }
	           
	        }
		}



}


















 ?>